package com.reactim.message.config.management;

import lombok.Data;
import java.util.Set;

/**
 * 配置刷新结果
 * 
 * <p>封装配置动态刷新操作的结果信息，包括成功状态、刷新的配置项、
 * 备份信息和错误详情等。</p>
 * 
 * @author ReactIM Team
 * @version 1.0.0
 * @since 1.0.0
 */
@Data
public class ConfigurationRefreshResult {
    
    /**
     * 刷新是否成功
     */
    private boolean success;
    
    /**
     * 结果消息
     */
    private String message;
    
    /**
     * 刷新前创建的备份名称
     */
    private String backupName;
    
    /**
     * 被刷新的配置项键集合
     */
    private Set<String> refreshedKeys;
    
    /**
     * 错误信息（如果刷新失败）
     */
    private Exception error;
    
    /**
     * 检查是否有刷新的配置项
     * 
     * @return 如果有刷新的配置项返回true
     */
    public boolean hasRefreshedKeys() {
        return refreshedKeys != null && !refreshedKeys.isEmpty();
    }
    
    /**
     * 获取刷新的配置项数量
     * 
     * @return 刷新的配置项数量
     */
    public int getRefreshedKeyCount() {
        return refreshedKeys != null ? refreshedKeys.size() : 0;
    }
}